using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AtDevice
{
    /// <summary>
    /// Interface to phonebook services of the device.
    /// </summary>
    public interface IPhoneBook
    {
        /// <summary>
        /// Get list of entries in the phone book.
        /// </summary>
        List<PhoneBookEntry> GetEntries();

        /// <summary>
        /// Add new entry to phone book.
        /// </summary>
        void AddEntry(PhoneBookEntry entry);
        
        /// <summary>
        /// Modify a phonebook entry. The index-field must be set correctly.
        /// </summary>
        void UpdateEntry(PhoneBookEntry entry);

        /// <summary>
        /// Remove the specified entry from the phone book.
        /// </summary>
        void DeleteEntry(PhoneBookEntry entry);

        /// <summary>
        /// Get name of the phone book.
        /// </summary>
        string GetName();

        /// <summary>
        /// Get number of used slots in the SIM card.
        /// </summary>
        int GetUsedStorage();

        /// <summary>
        /// Get the total number of slots in the SIM card.
        /// </summary>
        int GetStorageSize();

        /// <summary>
        /// Get a free index number for storing an entry.
        /// </summary>
        /// <returns></returns>
        int GetFreeIndex();
    }
}
